package com.polaris.live.resp.back_resp

/**
 * UserPartyBackgroundListVo
 *
 * @author Created by 半仙 on 2024/12/18/018 19:38
 */
data class UserPartyBackgroundListResp(
    /**
     * 列表
     */
    val list: List<UserPartyBackgroundVo>,

    /**
     * 一天最大上传次数
     */
    val maxUploadTimes: Int,

    /**
     * 当前已上传的次数
     */
    val currentUploadTimes: Int,

    val vip: UserPartyBackgroundVipVo? = null,

    /**
     * 上传次数配置
     */
    val uploadTimesConfig: UploadTimesConfig,
)

/**
 * UploadTimesConfig
 */
data class UploadTimesConfig(
    /**
     * vip最大上传次数
     */
    val vipUploadTimes: Int,

    /**
     * 普通用户最大上传次数
     */
    val normalUploadTimes: Int,

    /**
     * 团队用户最大上传次数
     */
    val teamUploadTimes: Int,
)

/**
 * UserPartyBackgroundVo
 */
data class UserPartyBackgroundVo(
    /**
     * 当前位置是否激活
     */
    val activated: Boolean,

    /**
     * 审核状态
     *
     * 0: 审核中
     * 1: 已通过
     * 2: 审核失败
     */
    var auditStatus: Int? = null,

    /**
     * 当前位置的图片
     */
    val background: String? = null,

    /**
     * 钻石价格，没有代表无法用钻石购买，json格式
     *
     * -1代表永久
     *
     * {7:100,15:200,30:300,-1:500}
     */
    val coins: Map<String, Long>? = null,

    /**
     * 过期时间
     */
    val expireTime: Long? = null,

    /**
     * 金豆价格，没有代表无法用金豆购买，json格式
     *
     * 没有-1代表无法使用游戏币购买永久
     *
     * {7:100,15:200,30:300}
     */
    val gainCoins: Map<String, Long>? = null,

    /**
     * 游戏币价格，没有代表无法用游戏币购买，json格式
     *
     * 没有-1代表无法使用游戏币购买永久
     *
     * {7:100,15:200,30:300}
     */
    val gameCoins: Map<String, Long>? = null,

    /**
     * 位置id
     *
     * 0,1,2,3,4
     */
    val position: Int,

    /**
     * 位置类型
     *
     * 0: 购买
     * 1: 公会成员
     * 2: VIP
     * @see BackgroundType
     */
    val positionType: Long,

    /**
     * 是否在使用中
     */
    var useStatus: Long,
)

/**
 * UserPartyBackgroundVipVo
 */
data class UserPartyBackgroundVipVo(
    /**
     * vip有效天数
     */
    val days: Long,

    /**
     * 等级
     */
    val level: Long,

    /**
     * 原价
     */
    val price: Long,

    /**
     * 一次购买多少天
     */
    val priceDays: Long,

    /**
     * 续期价
     */
    val renewalPrice: Long,
)

